DCM Platform Guide
  • 🌐DCM platform
  • ⚙️Specifics of working with the API
    • 🔐Security stack
    • 🔑Key Generation
    • 🔐Data encrypting
    • 🪃Retry policy
  • 🎨Design guide
  • 🗂️DCM platform's artifacts
  • 🏦Bank
    • 📋Preparing for integration
    • 🏪E-commerce
      • 📦Order and payment
      • 📨Payment message
        • 1️⃣Validation
        • 2️⃣Сallback 1 “Pay-in”
        • 3️⃣Callback 3 “Pay-out”
        • 4️⃣Callback 4 "Credit callback"
      • 🎯Testing
      • 🖇️Merchant Onboarding
      • ⛔Error reference guide
    • 🗃️Alias database
      • 🗝️Adding alias
      • ↕️"Сallback "Alias updated"
      • ☑️Get alias status
    • 💸p2p transfers
      • 📲p2p by phone number
        • ⏺️p2p order (to pay)
        • 🔍Receiver search
        • 🗂️Get receiver's data
        • ⏪Callback "Pay request"
      • 🖇️p2p by deeplink or QR code
        • ⏺️p2p order (to request)
        • Pay request initiation
      • 📨Payment message
        • 1️⃣Validation
        • 2️⃣Сallback “Pay-in”
        • 3️⃣Callback "Pay-out"
    • 💲Gross settlement
      • 1️⃣Callback “Gross_Settlement”
      • 2️⃣Gross_settlement_list
      • 3️⃣Gross_settlement_by_id
      • 4️⃣Gross_settlement_pay
      • 5️⃣Gross_settlement_confirm
      • 6️⃣Gross_settlement_confirm_internal
      • 📧Email notification
    • ✔️Reconciliation
  • 🏢Merchant
    • 🏫DCM platform for Merchants
      • 🔠Integration options
    • 👨‍🏫Preparing for integration
      • ⚙️Working with the API
      • 🔑Key Generation
      • 🖥️Updating interfaces
    • 🏪E-commerce
      • 📦Order
        • 💵Payment through the DCM platform
        • 💳Payment on the Merchant's website
        • 📋Emitters
        • 📬Order status
      • 1️⃣Сallback "Pay-in"
  • 📑Document data
    • 🆕Version history
    • 📃Change log
Powered by GitBook
On this page
  1. Bank
  2. p2p transfers
  3. p2p by phone number

p2p order (to pay)

Methods described on this page:

  • POST /create_p2p_order

  • GET /order_status

After receiving and confirming the recipient's phone number, the initiating bank generates a request to the DCM platform in JWT format to create a P2P order using the POST /create_p2p_order method.

POST/create p2p order

Endpoint: POST/api/v1/p2p/orders

Payload:

{ 
"jti": "1234567890", 
"creditor": { 
"phone": "+380991234567" 
}, 
"debtor": { 
"account": "UA41003506518366713636167" 
}, 
"expires_at": "2025-12-31T23:59:59Z", // optional  
"amount": 1500.75, // optional  
"currency": "UAH", 
"external_id": "112663",
"purpose": "Replenishment of own account",
"type": "phone" [enam: phone/ link]
}

Response 2хх OK

{ 
"creditor": { 
"phone": "+380991234567"
}, 
"debtor": { 
"account": "UA41003506518366713636167" 
}, 
"expires_at": "2025-12-31T23:59:59Z", // optional  
"amount": 1500.75, // optional 
"currency": "UAH", 
"external_id": "112663",
"purpose": "Payment for services",
"type": "phone", [enam: phone/ link]

"guid": "d1f54a9f-50d3-4a16-b5a8-e79a45160a8b", 
"pay_request_guid": "b5a8-e79a45160a8b-d1f54a9f-50d3-4a16-", 
"created_at": "2025-01-12T21:59:52.459161964Z", 
"status": "processing" // "pending" // "rejected"// "created"
}

p2p orders status list:

  • Processing - the receiver is found in the database

  • Pending - search of the receiver is pending

  • Rejected - receiver didn't link his phone number as an alias

  • Created - order created (only for p2p by request use case)

Response 4хх ERROR

Upon receiving a request to create an order, the DCM platform verifies it and, in case of any issues, provides details of the errors in the response.

{ 
"code": "SOME_CODE", 
"message": "some code description" 
}

Errors list

Code 400:

  • "INVALID_DEBTOR_ACCOUNT"

  • "INVALID_СREDITOR_PHONE"

  • "INVALID_TYPE"

  • "INVALID_CURRENCY"

  • "UNSUPPORTED_CURRENCY"

  • "INVALID_EXTERNAL_ID"

  • "EXTERNAL_ID_NOT_UNIQUE"

  • "EXPIRES_AT_IS_NOT-FUTURE_DATE"

  • "INVALID_PURPOSE"

  • "INVALID_REQUEST "

Code 401:

  • "AUTHORIZATION_FAILED"

Code 500:

  • "INTERNAL_ERROR"

The DCM platform allows retrieving information about the status of a P2P order using the GET /order_status request.

GET/order_status

Endpoint: GET /api/v1/p2p/orders/:order_guid

Response 2хх OK (same as POST/create_order)

{ 
"creditor": { 
"phone": "+380991234567" 
}, 
"debtor": { 
"account": "UA41003506518366713636167" 
}, 
"expires_at": "2025-12-31T23:59:59Z", // optional  
"amount": 1500.75, // optional  
"currency": "UAH",
"external_id": "112663",
"purpose": "Payment for services",
"type": "phone", [enam: phone/ link]

"guid": "d1f54a9f-50d3-4a16-b5a8-e79a45160a8b", 
"pay_request_guid": "b5a8-e79a45160a8b-d1f54a9f-50d3-4a16-", 
"status": "processing" // "pending" // "rejected"// "created" 
}

Error list:

Code 400:

  • "INVALID_ORDER_GUID"

Code 401:

  • "AUTHORIZATION_FAILED"

Code 404:

  • "ORDER NOT FOUND"

Code 500:

  • "INTERNAL_ERROR"

Previousp2p by phone numberNextReceiver search

Last updated 3 months ago

🏦
💸
📲
⏺️