Data Model Reference

This reference documents all entity types, fields, connections, filter inputs, and supporting types in the Merchant Data API.

Payin, Payout, and Claim are the three primary entities. Claims are linked to Payins through the transactionId foreign key. A single Claim can be associated with multiple Payins (via the relatedPayins nested field). Aggregation queries operate across all three datasets.


erDiagram
    PAYIN {
        string transactionId PK
        string trackingId
        decimal amount
        string currency
        string transactionStatusName
        datetime createdTs
        datetime editedTs
    }

    PAYOUT {
        string transactionId PK
        string trackingId
        decimal amount
        string currency
        decimal settlementAmount
        string transactionStatusName
        datetime createdTs
        datetime editedTs
    }

    CLAIM {
        string claimId PK
        string transactionId FK
        decimal amount
        string status
        string claimReason
        datetime createdTs
        datetime editedTs
    }

    PAYIN ||--o{ CLAIM : "has claims"
    CLAIM }o--|| PAYIN : "relatedPayins"

Payin

An inbound payment transaction where funds are received from a customer.

FieldTypeFormatNullableDescription
transactionIdString--NoUnique transaction identifier.
trackingIdString--YesExternal tracking reference provided by your system.
amountStringMoney (2 decimal places)YesTransaction amount (e.g., "55.03").
currencyStringISO 4217YesCurrency code (e.g., "BRL").
createdDateStringyyyy-MM-ddYesDate the payin was created.
createdTsStringISO 8601YesTimestamp when the payin was created.
editedTsStringISO 8601YesTimestamp of the last status update.
transactionStatusNameString--YesCurrent status (e.g., "APPROVED", "CANCELLED", "EXPIRED", "PENDING", "FAILED").
transactionDescriptionString--YesHuman-readable description.
countryNameString--YesCountry where the transaction was processed.
shopNameString--YesName of the shop.
paymentMethodIdInt--YesPayment method identifier.
paymentMethodNameString--YesPayment method name (e.g., "PIX").
paymentChannelTypeCodeString--YesPayment channel type code.
customerEmailStringEmailYesCustomer email. PII -- may be masked.
customerPersonalIdString--YesCustomer personal ID (e.g., CPF). PII -- may be masked.
customerFullNameString--YesCustomer full name. PII -- may be masked.
customerAddressString--YesCustomer address.
customerCityString--YesCustomer city.
customerPostalCodeString--YesCustomer postal code.
customerStateString--YesCustomer state or province.
customerPhoneString--YesCustomer phone number. PII -- may be masked.
customerIpStringIPYesCustomer IP address.
bankNameString--YesBank name.
bankCountryNameString--YesCountry of the bank.
notificationUrlStringURIYesMerchant notification callback URL.
couponAmountStringMoneyYesAmount paid via coupon.
bankAccountTypeString--YesType of bank account.
uniqueCustomerIdentifierString--YesUnique customer identifier.
couponCurrencyCodeStringISO 4217YesCurrency code for the coupon amount.
payerPersonalIdString--YesPayer personal ID. PII -- may be masked.
payerAccountNumberString--YesPayer account number.
payerFullNameString--YesPayer full name. PII -- may be masked.
payerEmailStringEmailYesPayer email. PII -- may be masked.
payerCityString--YesPayer city.
payerPhoneString--YesPayer phone number. PII -- may be masked.
payerAddressString--YesPayer address.
payerBankNameString--YesPayer bank name.
errorReasonString--YesReason for transaction error.
standardizedErrorString--YesStandardized error code.
normalisedErrorReasonString--YesNormalised error reason.
isTestBoolean--YesWhether this is a test transaction.
originString--YesOrigin of the transaction.

Payout

An outbound payment transaction where funds are sent from the merchant to a recipient.

FieldTypeFormatNullableDescription
transactionIdString--NoUnique transaction identifier.
trackingIdString--YesExternal tracking reference.
amountStringMoneyYesPayout amount.
currencyStringISO 4217YesCurrency code.
settlementAmountStringMoneyYesSettlement amount (may differ from amount due to fees or exchange rates).
createdDateStringyyyy-MM-ddYesDate the payout was created.
createdTsStringISO 8601YesCreation timestamp.
editedTsStringISO 8601YesLast status update timestamp.
transactionStatusNameString--YesCurrent status (e.g., "FINISHED", "PENDING", "FAILED").
transactionDescriptionString--YesHuman-readable description.
countryNameString--YesCountry where the payout was processed.
shopNameString--YesShop name.
customerEmailStringEmailYesCustomer email. PII -- may be masked.
customerPhoneString--YesCustomer phone. PII -- may be masked.
customerAddressString--YesCustomer address.
customerCityString--YesCustomer city.
customerPersonalIdString--YesCustomer personal ID. PII -- may be masked.
customerDocumentTypeString--YesCustomer identity document type.
isTestBoolean--YesWhether this is a test transaction.
paidDateStringyyyy-MM-ddYesDate the payout was paid.
paidTsStringISO 8601YesTimestamp when paid.
beneficiaryFullNameString--YesPayout beneficiary full name.
beneficiaryTypeCodeString--YesBeneficiary type code.
payoutAccountTypeCodeString--YesDestination account type code.
accountNumberString--YesDestination account number.
accountAgencyNumberString--YesBank agency number.
bankNameString--YesDestination bank name.
recipientPixKeyString--YesPIX key of the recipient (Brazil-specific).
normalisedErrorReasonString--YesNormalised error reason.

Claim

A chargeback or dispute claim filed against a payin transaction. A single claim may be associated with multiple payin transactions.

FieldTypeFormatNullableDescription
claimIdString--NoUnique claim identifier. Used as the cursor ID for claim pagination.
transactionIdString--YesAssociated payin transaction ID.
amountStringMoneyYesClaimed amount.
createdDateStringyyyy-MM-ddYesDate the claim was created.
createdTsStringISO 8601YesCreation timestamp.
editedTsStringISO 8601YesLast update timestamp.
statusString--YesClaim status (e.g., "IN_FAVOR_MERCHANT").
claimReasonString--YesReason for the claim (e.g., "PIX_BRASIL_DISPUTE").
shopNameString--YesShop name.
processedDateStringyyyy-MM-ddYesDate the claim was resolved.
processedTsStringISO 8601YesResolution timestamp.
commentsString--YesComments on the claim resolution.
refundedAmountStringMoneyYesAmount refunded to the claimant.
amountInFavorStringMoneyYesAmount resolved in favour of the merchant.
claimFeeStringMoneyYesFee charged for the claim.
relatedPayins[Payin]--YesNested list of payin transactions linked to this claim (maximum 100).

relatedPayins

The relatedPayins field on a Claim returns the payin transactions associated with the claim. This is a nested query that returns up to 100 payins per claim.

query {
  claims(
    first: 1
    filter: {
      claimId: "20723"
      createdDateFrom: "2026-01-01"
      createdDateTo: "2026-01-31"
    }
  ) {
    edges {
      node {
        claimId
        amount
        status
        claimReason
        relatedPayins {
          transactionId
          amount
          currency
          transactionStatusName
        }
      }
    }
  }
}

PageInfo

Pagination metadata returned with every connection.

FieldTypeDescription
endCursorStringOpaque cursor of the last item in the page. Pass as after to fetch the next page. Null when the page is empty.
hasNextPageBooleantrue if more results exist beyond the current page.

PageSummary

Additional pagination metadata.

FieldTypeDescription
rowCountIntNumber of items in the current page.
pageSizeLimitIntEffective page size limit applied (the first value or default 1000).
totalCountIntAlways null for list queries.

AggregationResult

Returned by the aggregations query.

FieldTypeDescription
totalCountIntTotal count of records matching the filter.
sumAmountString (Money)Sum of amounts for matching records.
byStatus[AggregationByStatus]Per-status breakdown.

AggregationByStatus

A single status bucket within an aggregation result.

FieldTypeDescription
statusStringThe status value.
countIntNumber of records with this status.
sumAmountString (Money)Sum of amounts for records with this status.

Example aggregation response

{
  "data": {
    "payinsAgg": {
      "totalCount": 3720,
      "sumAmount": "823980.71",
      "byStatus": [
        { "status": "APPROVED", "count": 3176, "sumAmount": "678716.21" },
        { "status": "FAILED", "count": 9, "sumAmount": "515.71" },
        { "status": "PENDING", "count": 461, "sumAmount": "130922.74" },
        { "status": "EXPIRED", "count": 16, "sumAmount": "1723.57" },
        { "status": "CANCELLED", "count": 58, "sumAmount": "12102.48" }
      ]
    }
  }
}

Connection types

All list queries return connection wrappers following the same pattern.

ConnectionEdge typeNode type
PayinConnectionPayinEdgePayin
PayoutConnectionPayoutEdgePayout
ClaimConnectionClaimEdgeClaim

Each connection contains:

  • edges -- Array of edge objects, each with a node and cursor.
  • pageInfo -- PageInfo object with endCursor and hasNextPage.
  • summary -- PageSummary object with rowCount, pageSizeLimit, and totalCount.

Filter inputs

PayinFilterInput

FieldTypeDescription
transactionIdStringExact match. Pinpoint filter.
trackingIdStringExact match. Pinpoint filter.
personIdStringExact match. Pinpoint filter.
shopIdStringFilter by shop ID.
createdDateFromString (date)Start of date range (inclusive).
createdDateToString (date)End of date range (inclusive).
statusStringFilter by transaction status.
amountFromString (money)Minimum amount.
amountToString (money)Maximum amount.
paymentMethodNameStringFilter by payment method.

PayoutFilterInput

FieldTypeDescription
transactionIdStringExact match. Pinpoint filter.
trackingIdStringExact match. Pinpoint filter.
personIdStringExact match. Pinpoint filter.
shopIdStringFilter by shop ID.
createdDateFromString (date)Start of date range.
createdDateToString (date)End of date range.
statusStringFilter by status.
amountFromString (money)Minimum amount.
amountToString (money)Maximum amount.
settlementAmountFromString (money)Minimum settlement amount.
settlementAmountToString (money)Maximum settlement amount.
editedDateFromString (date)Filter by last-edited date (start).
editedDateToString (date)Filter by last-edited date (end).

ClaimFilterInput

FieldTypeDescription
claimIdStringExact match. Pinpoint filter.
transactionIdStringExact match. Pinpoint filter.
shopIdStringFilter by shop ID.
createdDateFromString (date)Start of date range.
createdDateToString (date)End of date range.
statusStringFilter by claim status.
claimReasonStringFilter by claim reason.
processedDateFromString (date)Filter by processed date (start).
processedDateToString (date)Filter by processed date (end).
refundedAmountFromString (money)Minimum refunded amount.
refundedAmountToString (money)Maximum refunded amount.

AggregationFilterInput

FieldTypeDescription
createdDateFromString (date)Start of date range (required).
createdDateToString (date)End of date range (required).

AggregationDataset enum

Used with the aggregations query to specify which dataset to aggregate.

ValueDescription
PAYINSAggregate payin transactions.
PAYOUTSAggregate payout transactions.
CLAIMSAggregate claim records.

Field standards

Monetary amounts

All monetary values use the Money scalar type and are returned as strings with exactly 2 decimal places (e.g., "55.03", "1000.00"). Parse these as decimal types in your application -- do not use floating-point types to avoid precision loss.

Dates and timestamps

  • Date fields (createdDate, paidDate, processedDate): Format yyyy-MM-dd.
  • Timestamp fields (createdTs, editedTs, paidTs, processedTs): ISO 8601 format with timezone offset (e.g., "2026-01-31T23:59:15.167Z").

Currency codes

All currency codes follow ISO 4217 (3-letter uppercase). Common currencies in the API include BRL, CLP, MXN, COP, and PEN.

PII fields

Fields marked as PII may be returned in masked form unless the X-Pii-Access: true header is included. PII fields include: customerEmail, customerPersonalId, customerFullName, customerPhone, payerPersonalId, payerFullName, payerEmail, payerPhone.