Inyo

Push Transaction

Push (payout) transactions transfer funds to a recipient. The Inyo Gateway supports multiple destination methods:

  • Cards — Visa Direct / Mastercard Send (domestic and cross-border)
  • ACH — US domestic bank transfers
  • PIX — Brazilian instant payments
  • Wallets — Digital wallet payouts
  • Bank Accounts — Cross-border account payouts

Endpoint

POST https://{FQDN}/v2/payment

Headers:

HeaderValue
AuthorizationBearer {accessToken}
Content-Typeapplication/json

Request Structure

Root Object

FieldTypeRequiredDescription
externalPaymentIdstringYour unique payment identifier
ipAddressstringOriginator's IPv4 or IPv6 address
paymentTypestring"PUSH"
amountobjectSource amount (what you're sending)
recipientAmountobjectDestination amount (what recipient receives)
exchangeRatenumberFX rate applied between currencies
senderobjectSender details
recipientobjectRecipient details and destination

amount Object (Source)

FieldTypeRequiredDescription
totalnumberAmount to send (must be ≥ 1)
currencystringSource currency (e.g., "USD")

recipientAmount Object (Destination)

FieldTypeRequiredDescription
totalnumberAmount recipient receives
currencystringDestination currency (ISO 4217, e.g., "BRL")

sender Object

FieldTypeRequiredDescription
customerobjectSender's personal information
customerAddressobjectSender's address

sender.customer

FieldTypeRequiredDescription
firstNamestringSender's first name
lastNamestringSender's last name
phoneNumberstringPhone (7–15 digits)
documentNumberstringID document number (5–20 digits)
documentTypestringNATIONAL_ID, PASSPORT, or DRIVER_LICENSE
emailstringEmail address
countryCodeAlpha3stringISO Alpha-3 country code (e.g., "USA")

sender.customerAddress

FieldTypeRequiredDescription
stateCodestringState abbreviation (e.g., "CA")
citystringCity name
line1stringStreet address line 1
line2stringStreet address line 2
zipCodestringPostal/ZIP code
countryCodestringISO Alpha-2 country code

recipient Object

FieldTypeRequiredDescription
customerobjectRecipient's personal information
customerAddressobjectRecipient's address
destinationobjectPayout method and details

recipient.customer

Same fields as sender.customer.

recipient.customerAddress

Same fields as sender.customerAddress.

recipient.destination — Card

FieldTypeRequiredDescription
typestring"CARD"
cardTokenIdstringTokenized card identifier

recipient.destination — PIX

FieldTypeRequiredDescription
typestring"PIX"
pix.keyTypestring"EMAIL", "PHONE", "DOCUMENT" (CPF/CNPJ), or "EVP" (random key)
pix.keystringThe PIX key value

recipient.destination — Wallet

FieldTypeRequiredDescription
typestring"WALLET"
wallet.walletIdstringWallet identifier (email or ID)

Example — Push to Card

curl -X POST https://{FQDN}/v2/payment \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "externalPaymentId": "push-card-001",
    "ipAddress": "203.0.113.42",
    "paymentType": "PUSH",
    "amount": {
      "total": 250.00,
      "currency": "USD"
    },
    "recipientAmount": {
      "total": 250.00,
      "currency": "USD"
    },
    "sender": {
      "firstName": "Jane",
      "lastName": "Doe",
      "email": "jane.doe@example.com",
      "address": {
        "countryCode": "USA",
        "stateCode": "CA",
        "city": "Mountain View",
        "line1": "1600 Amphitheatre Pkwy",
        "line2": "",
        "zipCode": "94043"
      }
    },
    "recipient": {
      "firstName": "John",
      "lastName": "Smith",
      "email": "john.smith@example.com",
      "dateOfBirth": "1990-05-15",
      "contactNumber": "12125551234",
      "address": {
        "countryCode": "USA",
        "stateCode": "NY",
        "city": "New York",
        "line1": "20 W 34th St",
        "line2": "",
        "zipCode": "10001"
      },
      "paymentMethod": {
        "type": "CARD",
        "cardTokenId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }
  }'

Example — Push to PIX

curl -X POST https://{FQDN}/v2/payment \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "externalPaymentId": "push-001",
    "ipAddress": "203.0.113.42",
    "paymentType": "PUSH",
    "amount": {
      "total": 55.00,
      "currency": "USD"
    },
    "recipientAmount": {
      "total": 273.63,
      "currency": "BRL"
    },
    "exchangeRate": 4.975,
    "sender": {
      "customer": {
        "firstName": "John",
        "lastName": "Smith",
        "phoneNumber": "5551234567",
        "documentNumber": "050482156",
        "documentType": "NATIONAL_ID",
        "email": "john.smith@example.com",
        "countryCodeAlpha3": "USA"
      },
      "customerAddress": {
        "stateCode": "CA",
        "city": "Los Angeles",
        "line1": "4429 Candlewood St",
        "zipCode": "90712",
        "countryCode": "US"
      }
    },
    "recipient": {
      "customer": {
        "firstName": "Carlos",
        "lastName": "Silva",
        "phoneNumber": "1122334455",
        "documentNumber": "12345678900",
        "documentType": "PASSPORT",
        "email": "carlos.silva@example.com",
        "countryCodeAlpha3": "BRA"
      },
      "customerAddress": {
        "stateCode": "RJ",
        "city": "Rio de Janeiro",
        "line1": "Rua das Laranjeiras 321",
        "state": "Rio de Janeiro",
        "zipCode": "22240-005"
      },
      "destination": {
        "type": "PIX",
        "pix": {
          "keyType": "DOCUMENT",
          "key": "01034861788"
        }
      }
    }
  }'

Example — Push to Wallet

curl -X POST https://{FQDN}/v2/payment \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "externalPaymentId": "push-002",
    "ipAddress": "203.0.113.42",
    "paymentType": "PUSH",
    "amount": {
      "total": 100.00,
      "currency": "USD"
    },
    "recipientAmount": {
      "total": 497.50,
      "currency": "BRL"
    },
    "exchangeRate": 4.975,
    "sender": {
      "customer": {
        "firstName": "Jane",
        "lastName": "Doe",
        "phoneNumber": "5559876543",
        "documentNumber": "123456789",
        "documentType": "NATIONAL_ID",
        "email": "jane.doe@example.com",
        "countryCodeAlpha3": "USA"
      },
      "customerAddress": {
        "stateCode": "NY",
        "city": "New York",
        "line1": "456 Park Avenue",
        "zipCode": "10022",
        "countryCode": "US"
      }
    },
    "recipient": {
      "customer": {
        "firstName": "Ana",
        "lastName": "Souza",
        "phoneNumber": "21987654321",
        "documentNumber": "10987654321",
        "documentType": "PASSPORT",
        "email": "ana.souza@example.com",
        "countryCodeAlpha3": "BRA"
      },
      "customerAddress": {
        "stateCode": "RJ",
        "city": "Rio de Janeiro",
        "line1": "Rua da Alfândega 45",
        "state": "Rio de Janeiro",
        "zipCode": "20010-030"
      },
      "destination": {
        "type": "WALLET",
        "wallet": {
          "walletId": "ana.souza@wallet.com"
        }
      }
    }
  }'

Foreign Exchange

For cross-currency push payments, fetch an FX rate before submitting. Pass the returned fxId and conversionRate as the fxId and exchangeRate in your payment request.

See the full Foreign Exchange documentation for detailed request/response schemas, including the v2 endpoint with payment-method-specific rates.

Quick example (v1):

curl -X POST https://{FQDN}/foreign-exchange \
  -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIs...' \
  -H 'Content-Type: application/json' \
  -d '{
    "sourceCurrencyCode": "USD",
    "destinationCurrencyCode": "BRL"
  }'
{
  "fxId": "a1b2c3d4-...",
  "conversionRate": 4.975,
  "quoteIdExpiryDateTime": "2025-03-31T15:30:00Z"
}

Note: FX quotes have a limited validity period. Check quoteIdExpiryDateTime and refresh if expired.